/*
 * User.java
 */
package ITU_ShuttleTracker.User;

import ITU_ShuttleTracker.User.Location.Location;
import ITU_ShuttleTracker.User.Shuttle.Route;
import ITU_ShuttleTracker.User.Shuttle.Schedule;
import ITU_ShuttleTracker.User.ShuttleBus.ShuttleBus;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Onuralp
 */
public class User {
    private Location location;
    private Location nearestStation;
    private ShuttleBus nearestShuttleBus;
    private Date currentTime;
    private Route route;
    private List<Schedule> scheduleList;

    /**
     * Constructor of User class
     * @param location User location
     */
    public User(Location location) {
        this.location = location;
        this.nearestStation = location;
        this.nearestShuttleBus = new ShuttleBus();
        this.currentTime = new Date();
        this.route = new Route();
        this.scheduleList = new ArrayList<Schedule>();
    }
    
    /**
     * Getter method of current time
     * @return Current time
     */
    public Date getCurrentTime() {
        return currentTime;
    }

    /**
     * Setter method of current time
     * @param currentTime Current time
     */
    public void setCurrentTime(Date currentTime) {
        this.currentTime = currentTime;
    }

    /**
     * Getter method of user location
     * @return User location
     */
    public Location getLocation() {
        return location;
    }

    /**
     * Setter method of user location
     * @param location User location
     */
    public void setLocation(Location location) {
        this.location = location;
    }

    /**
     * Getter method of nearest station
     * @return Nearest station
     */
    public Location getNearestStation() {
        return nearestStation;
    }

    /**
     * Setter method of nearest station
     * @param nearestStation Nearest station
     */
    public void setNearestStation(Location nearestStation) {
        this.nearestStation = nearestStation;
    }

    /**
     * Getter method of nearest shuttle bus
     * @return Nearest shuttle bus
     */
    public ShuttleBus getNearestShuttleBus() {
        return nearestShuttleBus;
    }

    /**
     * Setter method of nearest shuttle bus
     * @param nearestShuttleBus Nearest shuttle bus
     */
    public void setNearestShuttleBus(ShuttleBus nearestShuttleBus) {
        this.nearestShuttleBus = nearestShuttleBus;
    }

    /**
     * Getter method of route
     * @return Route
     */
    public Route getRoute() {
        return route;
    }

    /**
     * Setter method of route
     * @param route Route
     */
    public void setRoute(Route route) {
        this.route = route;
    }

    /**
     * Getter method of schedule list
     * @return Schedule list
     */
    public List<Schedule> getScheduleList() {
        return scheduleList;
    }

    /**
     * Setter method of schedule list
     * @param scheduleList Schedule list
     */
    public void setScheduleList(List<Schedule> scheduleList) {
        this.scheduleList = scheduleList;
    }
}
